Some more
authorMatthias Clasen <matthiasc@src.gnome.org>
Thu, 5 Jan 2006 17:39:17 +0000 (17:39 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Thu, 5 Jan 2006 17:39:17 +0000 (17:39 +0000)
ChangeLog
ChangeLog.pre-2-10
gtk/gtkaction.c

index 679b4ad06d2b62645e7440ce1d57c7e2840db97a..ec8845d38f4ab1c716715e90552e90aa0b6ea399 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,11 +1,13 @@
 2006-01-05  Matthias Clasen  <mclasen@redhat.com>
 
-       * gtk/gtkaction.c (connect_proxy): Use a weak reference rather
-       than the destroy signal to track proxies going away.
+       * gtk/gtkaction.c (connect_proxy, disconnect_proxy): 
+       Use a weak reference rather than the destroy signal to track 
+       proxies going away.
 
        * gtk/gtkbindings.c (binding_signal_new): Revert the last change.
 
-       * gtk/gtkaction.c (gtk_action_sync_property): Removed.
+       * gtk/gtkaction.c (gtk_action_sync_property): 
+       (gtk_action_sync_stock_id): Removed.
 
 2006-01-05  Rodrigo Moya <rodrigo@novell.com>
 
index 679b4ad06d2b62645e7440ce1d57c7e2840db97a..ec8845d38f4ab1c716715e90552e90aa0b6ea399 100644 (file)
@@ -1,11 +1,13 @@
 2006-01-05  Matthias Clasen  <mclasen@redhat.com>
 
-       * gtk/gtkaction.c (connect_proxy): Use a weak reference rather
-       than the destroy signal to track proxies going away.
+       * gtk/gtkaction.c (connect_proxy, disconnect_proxy): 
+       Use a weak reference rather than the destroy signal to track 
+       proxies going away.
 
        * gtk/gtkbindings.c (binding_signal_new): Revert the last change.
 
-       * gtk/gtkaction.c (gtk_action_sync_property): Removed.
+       * gtk/gtkaction.c (gtk_action_sync_property): 
+       (gtk_action_sync_stock_id): Removed.
 
 2006-01-05  Rodrigo Moya <rodrigo@novell.com>
 
index 581d38a78a885d988bcb2794f6c0d49d73adc367..036a057341b3fc17a1d39203c474d1eb977e58c8 100644 (file)
@@ -618,23 +618,6 @@ _gtk_action_sync_menu_visible (GtkAction *action,
 
 gboolean _gtk_menu_is_empty (GtkWidget *menu);
 
-static void
-gtk_action_sync_stock_id (GtkAction  *action, 
-                         GParamSpec *pspec,
-                         GtkWidget  *proxy)
-{
-  GtkWidget *image = NULL;
-
-  if (GTK_IS_IMAGE_MENU_ITEM (proxy))
-    {
-      image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (proxy));
-
-      if (GTK_IS_IMAGE (image))
-       gtk_image_set_from_stock (GTK_IMAGE (image),
-                                 action->private_data->stock_id, GTK_ICON_SIZE_MENU);
-    }
-}
-
 static gboolean
 gtk_action_create_menu_proxy (GtkToolItem *tool_item, 
                              GtkAction   *action)
@@ -809,6 +792,7 @@ disconnect_proxy (GtkAction *action,
 {
   g_object_set_qdata (G_OBJECT (proxy), quark_gtk_action_proxy, NULL);
 
+  g_object_weak_unref (G_OBJECT (proxy), (GWeakNotify)remove_proxy, action);
   remove_proxy (action, proxy);
 
   /* disconnect the activate handler */
@@ -816,9 +800,6 @@ disconnect_proxy (GtkAction *action,
                                        G_CALLBACK (gtk_action_activate),
                                        action);
 
-  g_signal_handlers_disconnect_by_func (action,
-                               G_CALLBACK (gtk_action_sync_stock_id), proxy);
-
   /* toolbar button specific synchronisers ... */
   g_signal_handlers_disconnect_by_func (proxy,
                                        G_CALLBACK (gtk_action_create_menu_proxy),